It is sometimes desirable to change the resolution of an electronic image. For example, an electronic display device such as a television set or a computer monitor has a maximum display resolution. Therefore, if an image has a higher resolution than the device's maximum display resolution, then one may wish to down-convert the image to a resolution that is lower than or equal to the maximum display resolution. For clarity, this is described hereinafter as down-converting a hi-res version of an image to a lo-res version of the same image.
FIG. 1 is a pixel diagram of a hi-res version 10 of an image and a lo-res version 12 of the same image. The hi-res version 10 is n pixels wide by t pixels high and thus has n×t pixels P0, 0–Pt, n. But if a display device (not shown) has a maximum display resolution of [n×g] pixels wide by [t×h] pixels high where g and h are less than one, then, for display purposes, one typically converts the hi-res version 10 into the lo-res version 12, which has a resolution that is less than or equal to the maximum display resolution. Therefore, to display the image on the display device with the highest possible resolution, the lo-res version 12 has (n×g)×(t×h) pixels P0, 0–P(t×h), (n×g). For example, suppose that the hi-res version 10 is n=1920 pixels wide by t=1088 pixels high. Furthermore, assume that the display device has a maximum resolution of n×g=720 pixels wide by t×h=544 pixels high. Therefore, the lo-res version 12 has a maximum horizontal resolution that is g=⅜ of the horizontal resolution of the hi-res version 10 and has a vertical resolution that is h=½ of the vertical resolution of the hi-res version 10.
Referring to FIG. 2, many versions of images such as the version 10 of FIG. 1 are encoded using a conventional block-based compression scheme before they are transmitted or stored. Therefore, for these image versions, the resolution reduction discussed above in conjunction with FIG. 1 is often carried out on a block-by-block basis. Specifically, FIG. 2 illustrates the down-converting example discussed above in conjunction with FIG. 1 on a block level for g=⅜ and h=½. An image block 14 of the hi-res version 10 (FIG. 1) is 8 pixels wide by 8 pixels high, and an image block 16 of the lo-res version 12 (FIG. 1) is 8×⅜=3 pixels wide by 8×½=4 pixels high. The pixels in the block 16 are often called sub-sampled pixels and are evenly spaced apart inside the block 16 and across the boundaries of adjacent blocks (not shown) of the lo-res version 12. For example, referring to the block 16, the sub-sampled pixel P0,2 is the same distance from P0, 1 as it is from the pixel P0, 0 in the block (not shown) immediately to the right of the block 16. Likewise, P3,0 is the same distance from P2, 0 as it is from the pixel P0, 0 in the block (not shown) immediately to the bottom of the block 16.
Unfortunately, because the algorithms for decoding an encoded hi-res version of an image into a decoded lo-res version of the image are inefficient, an image processing circuit that executes these algorithms often requires a relatively high-powered processor and a large memory and is thus often relatively expensive.
For example, U.S. Pat. No. 5,262,854 describes an algorithm that decodes the encoded hi-res version of the image at its full resolution and then down-converts the decoded hi-res version into the decoded lo-res version. Therefore, because only the decoded lo-res version will be displayed, generating the decoded hi-res version of the image is an unnecessary and wasteful step.
Furthermore, for encoded video images that are decoded and down converted as discussed above, the motion-compensation algorithms are often inefficient, and this inefficiency further increases the processing power and memory requirements, and thus the cost, of the image processing circuit. For example, U.S. Pat. No. 5,262,854 describes the following technique. First, a lo-res version of a reference frame is conventionally generated from a hi-res version of the reference frame and is stored in a reference-frame buffer. Next, an encoded hi-res version of a motion-compensated frame having a motion vector that points to a macro block of the reference frame is decoded at its full resolution. But the motion vector, which was generated with respect to the hi-res version of the reference frame, is incompatible with the lo-res version of the reference frame. Therefore, a processing circuit up-converts the pointed-to macro block of the lo-res version of the reference frame into a hi-res macro block that is compatible with the motion vector. The processing circuit uses interpolation to perform this up conversion. Next, the processing circuit combines the residuals and the hi-res reference macro block to generate the decoded macro block of the motion-compensated frame. Then, after the entire motion-compensated frame has been decoded into a decoded hi-res version of the motion-compensated frame, the processing circuit down-converts the decoded hi-res version into a decoded lo-res version. Therefore, because reference macro blocks are down-converted for storage and display and then up-converted for motion compensation, this technique is very inefficient.
Unfortunately, the image processing circuits that execute the above-described down-conversion and motion-compensation techniques may be too expensive for many consumer applications. For example, with the advent of high-definition television (HDTV), it is estimated that many consumers cannot afford to replace their standard television sets with HDTV receiver/displays. Therefore, a large consumer market is anticipated for HDTV decoders that down-convert HDTV video frames to standard-resolution video frames for display on standard television sets. But if these decoders incorporate the relatively expensive image processing circuits described above, then many consumers that cannot afford a HDTV receiver may also be unable to afford a HDTV decoder.